bitkeeper revision 1.812.1.2 (40631b5896PId5VPtNq3vagDYVMoqQ)
authorach61@labyrinth.cl.cam.ac.uk <ach61@labyrinth.cl.cam.ac.uk>
Thu, 25 Mar 2004 17:48:08 +0000 (17:48 +0000)
committerach61@labyrinth.cl.cam.ac.uk <ach61@labyrinth.cl.cam.ac.uk>
Thu, 25 Mar 2004 17:48:08 +0000 (17:48 +0000)
merge changes manually

xen/arch/i386/pdb-stub.c
xen/common/debug-linux.c
xen/common/debug.c
xen/include/asm-i386/pdb.h

index 93445c2c4c047bbf7b922a0caea6a65f8f2f5000..f13edf8592d80682361f1805640f62df44c804c7 100644 (file)
@@ -7,16 +7,16 @@
  * university of cambridge computer laboratory
  */
 
-#include <xeno/lib.h>
-#include <xeno/sched.h>
+#include <xen/lib.h>
+#include <xen/sched.h>
 #include <asm-i386/ptrace.h>
-#include <xeno/keyhandler.h> 
+#include <xen/keyhandler.h> 
 #include <asm/apic.h>
 #include <asm/domain_page.h>                           /* [un]map_domain_mem */
 #include <asm/processor.h>
 #include <asm/pdb.h>
-#include <xeno/list.h>
-#include <xeno/serial.h>
+#include <xen/list.h>
+#include <xen/serial.h>
 
 #define DEBUG_TRACE
 #ifdef DEBUG_TRACE
@@ -347,7 +347,10 @@ pdb_process_command (char *ptr, struct pt_regs *regs, unsigned long cr3,
         struct task_struct *p;
 
        p = find_domain_by_id(pdb_ctx[pdb_level].ctrl);
-       pdb_ctx[pdb_level].ctrl_cr3 = pagetable_val(p->mm.pagetable);
+       if (p->mm.shadow_mode)
+         pdb_ctx[pdb_level].ctrl_cr3 = pagetable_val(p->mm.shadow_table);
+       else
+         pdb_ctx[pdb_level].ctrl_cr3 = pagetable_val(p->mm.pagetable);
        put_task_struct(p);
        printk ("PROCESS: PDB SET CONTROL DOMAIN TO 0x%lx 0x%x\n",
                pdb_ctx[pdb_level].ctrl_cr3, 
@@ -359,7 +362,10 @@ pdb_process_command (char *ptr, struct pt_regs *regs, unsigned long cr3,
         struct task_struct *p;
 
        p = find_domain_by_id(pdb_ctx[pdb_level].info);
-       pdb_ctx[pdb_level].info_cr3 = pagetable_val(p->mm.pagetable);
+       if (p->mm.shadow_mode)
+         pdb_ctx[pdb_level].info_cr3 = pagetable_val(p->mm.shadow_table);
+       else
+         pdb_ctx[pdb_level].info_cr3 = pagetable_val(p->mm.pagetable);
        put_task_struct(p);
        printk ("PROCESS: PDB SET INFO DOMAIN TO 0x%lx 0x%x\n",
                pdb_ctx[pdb_level].info_cr3, 
@@ -462,7 +468,10 @@ pdb_process_command (char *ptr, struct pt_regs *regs, unsigned long cr3,
                if (thread > 0)
                {
                    struct task_struct *p = find_domain_by_id(thread);
-                   pdb_ctx[pdb_level].ctrl_cr3 = pagetable_val(p->mm.pagetable);
+                   if (p->mm.shadow_mode)
+                     pdb_ctx[pdb_level].ctrl_cr3 = pagetable_val(p->mm.shadow_table);
+                   else
+                     pdb_ctx[pdb_level].ctrl_cr3 = pagetable_val(p->mm.pagetable);
                    put_task_struct(p);
                    printk ("PDB SET CONTROL DOMAIN TO 0x%lx 0x%x\n",
                            pdb_ctx[pdb_level].ctrl_cr3,
@@ -476,7 +485,10 @@ pdb_process_command (char *ptr, struct pt_regs *regs, unsigned long cr3,
                if (thread > 0)
                {
                    struct task_struct *p = find_domain_by_id(thread);
-                   pdb_ctx[pdb_level].info_cr3 = pagetable_val(p->mm.pagetable);
+                   if (p->mm.shadow_mode)
+                     pdb_ctx[pdb_level].info_cr3 = pagetable_val(p->mm.shadow_table);
+                   else
+                     pdb_ctx[pdb_level].info_cr3 = pagetable_val(p->mm.pagetable);
                    put_task_struct(p);
                    printk ("PDB SET INFO DOMAIN TO 0x%lx 0x%x\n",
                            pdb_ctx[pdb_level].info_cr3,
@@ -969,8 +981,9 @@ int pdb_change_values_one_page(u_char *buffer, int length,
     if (!(l2_pgentry_val(*l2_table) & _PAGE_PRESENT)) 
     {
         struct task_struct *p = find_domain_by_id(0);
-       printk ("cr3: 0x%lx    dom0cr3:  0x%lx\n", 
-               cr3, pagetable_val(p->mm.pagetable));
+       printk ("cr3: 0x%lx    dom0cr3:  0x%lx\n",  cr3,
+               p->mm.shadow_mode ? pagetable_val(p->mm.shadow_table)
+                                 : pagetable_val(p->mm.pagetable));
        put_task_struct(p);
 
        printk ("L2:0x%p (0x%lx) \n", l2_table, l2_pgentry_val(*l2_table));
index 8bd0fbaa9c07bae7fe4eef25800fb9baf1940cf9..34ba557cec8a1f166074acfd635d4cd71cceae8b 100644 (file)
@@ -1,6 +1,6 @@
-#include <xeno/config.h>
-#include <xeno/types.h>
-#include <xeno/lib.h>
+#include <xen/config.h>
+#include <xen/types.h>
+#include <xen/lib.h>
 #include <hypervisor-ifs/dom0_ops.h>
 #include <asm/pdb.h>
 
 #define PIDHASH_SZ (4096 >> 2)
 #define pid_hashfn(x)  ((((x) >> 8) ^ (x)) & (PIDHASH_SZ - 1))
 
-/* from asm-xeno/pgtable-2level.h */
+/* from asm-xen/pgtable-2level.h */
 #define PGDIR_SHIFT    22
 #define PTRS_PER_PGD   1024
 
-/* from asm-xeno/page.h */
+/* from asm-xen/page.h */
 #define PAGE_SHIFT     12
 #define PAGE_SIZE      (1UL << PAGE_SHIFT)
 #define PAGE_MASK      (~(PAGE_SIZE-1))
@@ -34,7 +34,7 @@
 void pdb_linux_process_details (unsigned long cr3, int pid, char *buffer);
 
 
-/* adapted from asm-xeno/page.h */
+/* adapted from asm-xen/page.h */
 static inline unsigned long machine_to_phys(unsigned long cr3,
                                             unsigned long machine)
 {
index ad81f87fb777da86876780874a6905fe1c9d8aa8..09fa0f1cd86721a3e7dca7db33275703846a4fa0 100644 (file)
@@ -4,12 +4,12 @@
  * xen pervasive debugger
  */
 
-#include <xeno/config.h>
-#include <xeno/types.h>
-#include <xeno/lib.h>
+#include <xen/config.h>
+#include <xen/types.h>
+#include <xen/lib.h>
 #include <hypervisor-ifs/dom0_ops.h>
-#include <xeno/sched.h>
-#include <xeno/event.h>
+#include <xen/sched.h>
+#include <xen/event.h>
 #include <asm/page.h>
 #include <asm/pdb.h>
 
@@ -73,7 +73,10 @@ void pdb_do_debug (dom0_op_t *op)
            struct task_struct *p;
 
            p = find_domain_by_id(op->u.debug.domain);
-           cr3 = pagetable_val(p->mm.pagetable);
+           if (p->mm.shadow_mode)
+             cr3 = pagetable_val(p->mm.shadow_table);
+           else
+             cr3 = pagetable_val(p->mm.pagetable);
 
             for (loop = 0; loop < op->u.debug.in2; loop++)         /* length */
             { 
@@ -91,15 +94,13 @@ void pdb_do_debug (dom0_op_t *op)
         }
         case 's' :
        {
-           unsigned long cpu_mask;
            struct task_struct * p = find_domain_by_id(op->u.debug.domain);
 
            if (p != NULL)
            {
                if (p->state != TASK_STOPPED)
                {
-                   cpu_mask = mark_guest_event(p, _EVENT_STOP);
-                   guest_event_notify(cpu_mask);
+                 send_guest_virq(p, VIRQ_STOP);
                }
                put_task_struct(p);
            }
index d1a8b7a11e6407a2f03fc600a6009d01d6ec6784..7bfe0254e3cb542b86097a99b334adaeacfa7e98 100644 (file)
@@ -12,7 +12,7 @@
 #define __PDB_H__
 
 #include <asm/ptrace.h>
-#include <xeno/list.h>
+#include <xen/list.h>
 #include <hypervisor-ifs/hypervisor-if.h>                   /* for domain id */
 
 extern int pdb_initialized;